QStandardPaths::setTestModeEnabled(true);
}
+ void t7pl_data()
+ {
+ QTest::addColumn<bool>("moveToTrashEnabled");
+ QTest::newRow("move to trash") << true;
+ QTest::newRow("delete") << false;
+ }
+
void t7pl()
{
+ QFETCH(bool, moveToTrashEnabled);
+
FakeFolder fakeFolder{ FileInfo() };
+
+ auto syncOptions = fakeFolder.syncEngine().syncOptions();
+ syncOptions._moveFilesToTrash = moveToTrashEnabled;
+ fakeFolder.syncEngine().setSyncOptions(syncOptions);
+
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
// Some of this test depends on the order of discovery. With threading
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
}
+
+ void testLocalDelete_data()
+ {
+ QTest::addColumn<bool>("moveToTrashEnabled");
+ QTest::newRow("move to trash") << true;
+ QTest::newRow("delete") << false;
+ }
+
void testLocalDelete() {
+ QFETCH(bool, moveToTrashEnabled);
+
FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
+
+ auto syncOptions = fakeFolder.syncEngine().syncOptions();
+ syncOptions._moveFilesToTrash = moveToTrashEnabled;
+ fakeFolder.syncEngine().setSyncOptions(syncOptions);
+
ItemCompletedSpy completeSpy(fakeFolder);
fakeFolder.remoteModifier().remove("A/a1");
fakeFolder.syncOnce();
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
}
+ void testLocalDeleteWithReuploadForNewLocalFiles_data()
+ {
+ QTest::addColumn<bool>("moveToTrashEnabled");
+ QTest::newRow("move to trash") << true;
+ QTest::newRow("delete") << false;
+ }
+
void testLocalDeleteWithReuploadForNewLocalFiles()
{
+ QFETCH(bool, moveToTrashEnabled);
+
FakeFolder fakeFolder{FileInfo{}};
+ auto syncOptions = fakeFolder.syncEngine().syncOptions();
+ syncOptions._moveFilesToTrash = moveToTrashEnabled;
+ fakeFolder.syncEngine().setSyncOptions(syncOptions);
+
// create folders hierarchy with some nested dirs and files
fakeFolder.localModifier().mkdir("A");
fakeFolder.localModifier().insert("A/existingfile_A.txt", 100);
QCOMPARE(fileThirdSync->lastModified.toSecsSinceEpoch(), CURRENT_MTIME);
}
+ void testFolderRemovalWithCaseClash_data()
+ {
+ QTest::addColumn<bool>("moveToTrashEnabled");
+ QTest::newRow("move to trash") << true;
+ QTest::newRow("delete") << false;
+ }
+
void testFolderRemovalWithCaseClash()
{
- FakeFolder fakeFolder{ FileInfo{} };
+ QFETCH(bool, moveToTrashEnabled);
+
+ FakeFolder fakeFolder{FileInfo{}};
+
+ auto syncOptions = fakeFolder.syncEngine().syncOptions();
+ syncOptions._moveFilesToTrash = moveToTrashEnabled;
+ fakeFolder.syncEngine().setSyncOptions(syncOptions);
+
fakeFolder.remoteModifier().mkdir("A");
fakeFolder.remoteModifier().mkdir("toDelete");
fakeFolder.remoteModifier().insert("A/file");
}
}
+ void testServer_caseClash_createConflict_thenRemoveOneRemoteFile_data()
+ {
+ QTest::addColumn<bool>("moveToTrashEnabled");
+ QTest::newRow("move to trash") << true;
+ QTest::newRow("delete") << false;
+ }
+
void testServer_caseClash_createConflict_thenRemoveOneRemoteFile()
{
+ QFETCH(bool, moveToTrashEnabled);
+
constexpr auto testLowerCaseFile = "test";
constexpr auto testUpperCaseFile = "TEST";
FakeFolder fakeFolder{FileInfo{}};
+ auto syncOptions = fakeFolder.syncEngine().syncOptions();
+ syncOptions._moveFilesToTrash = moveToTrashEnabled;
+ fakeFolder.syncEngine().setSyncOptions(syncOptions);
+
fakeFolder.remoteModifier().insert("otherFile.txt");
fakeFolder.remoteModifier().insert(testLowerCaseFile);
fakeFolder.remoteModifier().insert(testUpperCaseFile);